// src/utils/markdownConfig.js

import MarkdownIt from 'markdown-it'
import hljs from 'highlight.js'
import 'highlight.js/styles/github.css'

// 创建并配置 MarkdownIt 实例
const md = new MarkdownIt({
  highlight: function (str, lang) {
    if (lang && hljs.getLanguage(lang)) {
      try {
        // 使用 highlight.js 进行代码高亮
        return '<pre class="hljs"><code>' +
               hljs.highlight(str, { language: lang, ignoreIllegals: true }).value +
               '</code></pre>';
      } catch (__) {}
    }
    // 如果语言不支持或出错，使用普通的代码块
    return '<pre class="hljs"><code>' + md.utils.escapeHtml(str) + '</code></pre>';
  },
})

// 自定义渲染函数，添加复制按钮
const renderWithCopyButton = (content) => {
  let rendered = md.render(content)
  // 为代码块添加 data-language 属性和复制按钮
  rendered = rendered.replace(
    /<pre><code class="language-(\w+)">/g,
    '<pre data-language="$1"><button class="copy-button">复制</button><code class="language-$1">',
  )
  return rendered
}

export { md, renderWithCopyButton }